home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SGI Freeware 1999 November
/
SGI Freeware 1999 November - Disc 2.iso
/
dist
/
fw_IZzip.idb
/
usr
/
freeware
/
src
/
zip
/
tailor.h.z
/
tailor.h
Wrap
C/C++ Source or Header
|
1997-09-09
|
10KB
|
404 lines
/* tailor.h -- Not copyrighted 1993 Mark Adler */
/* Define MSDOS for Turbo C and Power C */
#ifdef __POWERC
# define __TURBOC__
# define MSDOS
#endif /* __POWERC */
#if (defined(__MSDOS__) && !defined(MSDOS))
# define MSDOS
#endif
#ifdef ATARI_ST
# undef MSDOS /* avoid the MS-DOS specific includes */
#endif
/* Use prototypes and ANSI libraries if _STDC__, or Microsoft or Borland C,
* or Silicon Graphics, or IBM C Set/2, or Watcom C, or GNU gcc under emx.
*/
#if defined(__STDC__) || defined(MSDOS) || defined(ATARI_ST) || defined(sgi)
# ifndef PROTO
# define PROTO
# endif /* !PROTO */
# define MODERN
#endif
#if defined(__IBMC__) || defined(__EMX__) || defined(__WATCOMC__)
# ifndef PROTO
# define PROTO
# endif /* !PROTO */
# define MODERN
#endif
#if defined(__BORLANDC__) || (defined(__alpha) && defined(VMS))
# ifndef PROTO
# define PROTO
# endif /* !PROTO */
# define MODERN
#endif
#ifdef __IBMC__
# define S_IFMT 0xF000
#endif /* __IBMC__ */
#if defined(__EMX__) || defined(__WATCOMC__) || defined(__BORLANDC__)
# if (defined(OS2) && !defined(__32BIT__))
# define __32BIT__
# endif
#endif
#if (defined(__OS2__) && !defined(OS2))
# define OS2
#endif
#ifdef __convexc__
# define CONVEX
#endif /* __convexc__ */
#ifdef __COMPILER_KCC__
# define TOPS20
# define NOPROTO
# define NO_SYMLINK
# define NO_TERMIO
# define DIRENT
# define BIG_MEM
extern int isatty();
# define window_size winsiz
#endif
/* Turn off prototypes if requested */
#if (defined(NOPROTO) && defined(PROTO))
# undef PROTO
#endif
/* Used to remove arguments in function prototypes for non-ANSI C */
#ifdef PROTO
# define OF(a) a
#else /* !PROTO */
# define OF(a) ()
#endif /* ?PROTO */
/* Avoid using const if compiler does not support it */
#ifndef MODERN /* if this fails, try: ifndef__STDC__ */
# define const
#endif
#ifdef MACOS
# define DYN_ALLOC
#endif
#if (defined(MSDOS) && !defined(__GO32__) && !defined(WIN32))
# ifdef __TURBOC__
# include <alloc.h>
# define DYN_ALLOC
/* Turbo C 2.0 does not accept static allocations of large arrays */
void far * fcalloc OF((unsigned items, unsigned size));
void fcfree (void *ptr);
# else /* !__TURBOC__ */
# include <malloc.h>
# define farmalloc _fmalloc
# define farfree _ffree
# define fcalloc(nitems,itemsize) halloc((long)(nitems),(itemsize))
# define fcfree(ptr) hfree((void huge *)(ptr))
# endif /* ?__TURBOC__ */
#else /* !MSDOS */
# if defined(WIN32)
# include <malloc.h>
# endif
# ifdef __WATCOMC__
# undef huge
# undef far
# undef near
# endif
# ifndef __IBMC__
# define huge
# define far
# define near
# endif
# define farmalloc malloc
# define farfree free
# define fcalloc(items,size) calloc((unsigned)(items), (unsigned)(size))
# define fcfree free
# if (!defined(PROTO) && !defined(TOPS20))
extern char *calloc(); /* essential for 16 bit systems (AT&T 6300) */
# endif
#endif /* ?MSDOS */
#if (defined(OS2) && !defined(MSDOS))
/* MSDOS is defined anyway with MS C 16-bit. So the block above works.
* For the 32-bit compilers, MSDOS must not be defined in the block above. */
# define MSDOS
/* inherit MS-DOS file system etc. stuff */
#endif
/* Define MSVMS if MSDOS or VMS defined -- ATARI also does, Amiga could */
#if defined(MSDOS) || defined(VMS)
# define MSVMS
#endif
/* case mapping functions. case_map is used to ignore case in comparisons,
* to_up is used to force upper case even on Unix (for dosify option).
*/
#if defined(MSDOS) || defined(VMS) || defined(OS2) || defined(WIN32) || defined(AMIGA)
# define case_map(c) upper[(c) & 0xff]
# define to_up(c) upper[(c) & 0xff]
#else
# define case_map(c) (c)
# define to_up(c) ((c) >= 'a' && (c) <= 'z' ? (c)-'a'+'A' : (c))
#endif
/* Define void, voidp, and extent (size_t) */
#include <stdio.h>
#ifdef MODERN
# if (!defined(M_XENIX) && !(defined(__GNUC__) && defined(sun)))
# include <stddef.h>
# endif /* !M_XENIX */
# include <stdlib.h>
# if defined(SYSV) || defined(__386BSD__)
# include <unistd.h>
# endif
typedef size_t extent;
typedef void voidp;
#else /* !MODERN */
typedef unsigned int extent;
# define void int
typedef char voidp;
#endif /* ?MODERN */
/* Get types and stat */
#ifdef VMS
# include <types.h>
# include <stat.h>
# define unlink delete
# define NO_SYMLINK
# define SSTAT vms_stat
#else /* !VMS */
# ifdef MACOS
# include <types.h>
# include <stddef.h>
# include <Files.h>
# include <StandardFile.h>
# include <Think.h>
# include <LoMem.h>
# include <Pascal.h>
# include "macstat.h"
# define NO_SYMLINK
# else
# ifdef ATARI_ST
# include <ext.h>
# include <tos.h>
# else
# ifdef AMIGA
int wild OF((char *));
/* default to MEDIUM_MEM, but allow makefile override */
# if ( (!defined(BIG_MEM)) && (!defined(SMALL_MEM)))
# define MEDIUM_MEM
# endif
# if defined(LATTICE) || defined(__SASC)
# include <sys/types.h>
# include <sys/stat.h>
extern int isatty(int); /* SAS has no unistd.h */
# endif
# ifdef AZTEC_C
# include "amiga/z-stat.h"
# define RMDIR
# endif
# else /* !AMIGA */
# include <sys/types.h>
# include <sys/stat.h>
# endif
# endif
# endif
#endif /* ?VMS */
/* Some systems define S_IFLNK but do not support symbolic links */
#if defined (S_IFLNK) && defined(NO_SYMLINK)
# undef S_IFLNK
#endif
/* For Pyramid */
#ifdef pyr
# define strrchr rindex
# define ZMEM
#endif /* pyr */
/* File operations--use "b" for binary if allowed or fixed length 512 on VMS */
#ifdef VMS
# define FOPR "r","ctx=stm"
# define FOPM "r+","ctx=stm","rfm=fix","mrs=512"
# define FOPW "w","ctx=stm","rfm=fix","mrs=512"
#else /* !VMS */
# if defined(MODERN)
# define FOPR "rb"
# define FOPM "r+b"
# ifdef TOPS20 /* TOPS20 MODERN? You kidding? */
# define FOPW "w8"
# else
# define FOPW "wb"
# endif
# else /* !MODERN */
# ifdef AMIGA
# define FOPR "rb"
# define FOPM "rb+"
# define FOPW "wb"
# else /* !AMIGA */
# define FOPR "r"
# define FOPM "r+"
# define FOPW "w"
# endif /* ?AMIGA */
# endif /* ?MODERN */
#endif /* VMS */
/* Open the old zip file in exclusive mode if possible (to avoid adding
* zip file to itself).
*/
#ifdef OS2
# define FOPR_EX FOPM
#else
# define FOPR_EX FOPR
#endif
/* Define this symbol if your target allows access to unaligned data.
* This is not mandatory, just a speed optimization. The compressed
* output is strictly identical.
*/
#if (defined(MSDOS) && !defined(WIN32)) || defined(i386)
# define UNALIGNED_OK
#endif
#if defined(mc68020) || defined(vax)
# define UNALIGNED_OK
#endif
/* Under MSDOS we may run out of memory when processing a large number
* of files. Compile with MEDIUM_MEM to reduce the memory requirements or
* with SMALL_MEM to use as little memory as possible.
*/
#ifdef SMALL_MEM
# define CBSZ 2048 /* buffer size for copying files */
# define ZBSZ 2048 /* buffer size for temporary zip file */
#else
# ifdef MEDIUM_MEM
# define CBSZ 8192
# define ZBSZ 8192
# else
# ifdef OS2
# ifdef __32BIT__
# define CBSZ 0x40000
# define ZBSZ 0x40000
# else
# define CBSZ 0xE000
# define ZBSZ 0x7F00 /* Some libraries do not allow a buffer size > 32K */
# endif
# else
# ifdef TOPS20
# define CBSZ 524288
# define ZBSZ 524288
# else
# define CBSZ 16384
# define ZBSZ 16384
# endif
# endif
# endif
#endif
#if (defined(BIG_MEM) || defined(MMAP)) && !defined(DYN_ALLOC)
# define DYN_ALLOC
#endif
#ifdef __human68k__
# include <sys/xglob.h>
# define MSVMS
# define SSTAT h68_stat
int h68_stat OF((char *, struct stat *));
# define OS_CODE 0x300 /* pretend it's Unix */
#endif
#ifdef ATARI_ST
# define MSDOS /* what? should be fixed */
# define MSVMS
# ifndef O_BINARY
# define O_BINARY 0
# endif
# ifndef S_IFMT
# define S_IFMT (S_IFCHR|S_IFREG|S_IFDIR)
# endif
/* a whole bunch of functions needs Tos '\\' filenames
* instead of '/', the translation functions are in fileio.c:
*/
# define unlink st_unlink
# define chmod st_chmod
# define mktemp st_mktemp
# define fopen st_fopen
# define open st_open
# define SSTAT st_stat
# define findfirst st_findfirst
# define link st_rename
# define rmdir st_rmdir
int st_unlink OF((char *));
int st_chmod OF((char *, int));
char *st_mktemp OF((char *));
FILE *st_fopen OF((char *, char *));
int st_open OF((char *, int));
int st_stat OF((char *, struct stat *));
int st_findfirst OF((char *, struct ffblk *, int));
int st_rename OF((char *, char *));
int st_rmdir OF((char *));
#endif /* ATARI */
#ifndef SSTAT
# define SSTAT stat
#endif
#ifdef S_IFLNK
# define LSTAT lstat
#else
# define LSTAT SSTAT
#endif
/* The following OS codes are defined in pkzip appnote.txt */
#ifdef AMIGA
# define OS_CODE 0x100
#endif
#ifdef VMS
# define OS_CODE 0x200
#endif
/* unix 3 */
/* vms/cms 4 */
#ifdef ATARI_ST
# define OS_CODE 0x500
#endif
#ifdef OS2
# define OS_CODE 0x600
#endif
#ifdef MACOS
# define OS_CODE 0x700
#endif
/* z system 8 */
/* cp/m 9 */
#ifdef TOPS20
# define OS_CODE 0xa00
#endif
#ifdef WIN32
# define OS_CODE 0xb00
#endif
/* qdos 12 */
#if defined(MSDOS) && !defined(OS_CODE)
# define OS_CODE 0x000
#endif
#ifndef OS_CODE
# define OS_CODE 0x300 /* assume Unix */
# ifndef UNIX
# define UNIX
# endif
#endif
/* end of tailor.h */